package com.example.backetballgame.item;

import java.util.ArrayList;
import java.util.List;

/**
 * 为了模拟商品的生成和售卖，我们可以设计一个 Store 类，用于管理商品库存和销售。以下是一个简单的 Java 示例：
 *
 * 创建一个 GameItem 抽象基类和具体商品子类（如前面的 Potion 和 Character 示例）。
 *
 * 创建一个 Store 类，包含商品库存和销售方法：
 */

public class Store {
    private List<GameItem> inventory;

    public Store() {
        inventory = new ArrayList<>();
    }

    // 向库存中添加商品
    public void addItem(GameItem item) {
        inventory.add(item);
    }

    public void addItems(List<GameItem> items) {
        inventory.addAll(items);
    }

    // 从库存中移除商品
    public void removeItem(GameItem item) {
        inventory.remove(item);
    }

    //清除商店所有物品
    public void removeAll(){
        inventory.clear();
    }

    // 根据名称查找商品
    public GameItem findItemByName(String name) {
        for (GameItem item : inventory) {
            if (item.getName().equals(name)) {
                return item;
            }
        }
        return null;
    }

    public List<GameItem> getInventory() {
        return inventory;
    }

    // 模拟售卖商品
    public GameItem sellItem(String name) {
        GameItem item = findItemByName(name);
        if (item != null) {
            System.out.println("Selling item: " + item.getName() + " for " + item.getPrice() + " coins.");
            removeItem(item);
            return item;
        } else {
            System.out.println("Item not found: " + name);
            return null;
        }
    }

    // 显示库存中的商品
    public void displayInventory() {
        System.out.println("Inventory:");
        for (GameItem item : inventory) {
            System.out.println("- " + item.getName() + ": " + item.getPrice() + " coins");
        }
    }
}
